Imagix 4D Description


 Products                        Trial Software
 Customer Support                About Imagix
 Economic Analysis               Related Web Sites

Introduction

Graphical Exploration and Analysis Automated Data Collection and Integration


Introduction


The Problem

As a software developer, you're seeing the costs of working with ever-growing mountains of existing source code. Key engineers, who have the experience and expertise to lead new development efforts, are stuck maintaining their old code. New hires take too long to get up to speed. Enhancement efforts stretch out and new project starts slip, as time is spent figuring out how the current software works. Bugs are introduced when changes are made without adequately understanding their impact.

However, you can't just walk away from the existing software. It represents a major asset for your company; indeed, another form of program understanding cost occurs when difficulties locating and extracting existing code cause nearly identical routines to be written time and again. What you need is a tool to speed code comprehension.

Imagix 4D

Imagix 4D helps software developers understand C and C++ software that is complex, large, or unfamiliar. With Imagix 4D's browse, explore, analyze, and document functions, you're able to speed your development, enhancement, reuse, and testing.

A comprehensive program understanding tool, Imagix 4D enables you to rapidly check or systematically study your software on any level -- from its high level architecture to the details of its build, class, and function dependencies. You can visually explore a wide range of aspects about your software - control structures, data usage, and inheritance. You're also able to create design documentation automatically, further leveraging the information Imagix 4D collects about your software.

And Imagix 4D is priced so affordably, you're able to put a copy on every developer's workstation.


Graphical Exploration and Analysis


Imagix 4D is a tool to help you browse, explore, analyze, and document your software easier, faster, and more productively. Imagix 4D presents information about the key aspects of your software in a 3D graphical format, and enables you to quickly focus those views to answer the particular questions you're facing.

Broad Range of Views

Each of the views created by Imagix 4D describe your software from a different aspect. You're able to eliminate extraneous information, and see just that information which is relevant to your current question.

These views go far beyond traditional call graphs and class hierarchies. From file-level build relationships to new ways of viewing class relationships, you're able to see important aspects of your software in intuitive, quickly understandable ways. Questions about variable usage, test coverage, and system performance are all addressed by optimized views.

3D Views Speed Comprehension

To present the views of the entities and their relationships, Imagix 4D makes use of three-dimensional graphics. You're able to see and comprehend much more information than is possible with a two-dimensional view.

Exploration Engine Focuses on Pertinent Information

With its built-in knowledge-based exploration engine, Imagix 4D enables you to focus on the information you need. Imagix 4D's critical `fourth dimension' - its interactive graphical exploration capabilities - makes it possible for you to quickly locate and isolate the information that is pertinent to your problem.

Each display builds on the previous display. Your exploration is not a series of disjoint steps, but an easy progression through displays, following your natural train of thought.

For example, you may start by examining your control flow, and isolate particular functions you're interested in. When you switch to the Calls and Variables view, just those variables used by those functions are added. If you then want to see what class relationships are involved, just the classes containing the functions and variables are shown.

Integrated Source Code Browsing

With Imagix 4D's file editor, you're able to browse your source code using hypertext-like links between the definitions and uses of functions, classes, variables and types. Because of the editor's integration with the rest of Imagix 4D, you can control what you're seeing in the graphic window from the source code, and vis-versa.

By examining the source code details while graphically seeing their context, you're able to achieve rapid, accurate comprehension of your software.

Automated Documentation

By generating comprehensive design documents from the information in its database, Imagix 4D reduces the amount of time you need to spend documenting your code.

Imagix 4D produces two formats in addition to ASCII. You can create formal documents through RTF, exporting the Imagix 4D output to your word processor and modifying the fonts, adding a table of contents, etc. And for on-line documentation, the HTML output comes with the hyperlinks already set up.


Automated Data Collection and Integration


What makes this exploration possible is the knowledge base that Imagix 4D develops about your software. Acquiring data from a number of sources, Imagix 4D creates an extensive, cohesive, integrated database about your software. By automating this data collection and data integration, Imagix 4D eliminates much of the time-consuming work you would have to do in studying your software manually.

Range of Data Sources Provide Comprehensive Information

For data sources, Imagix 4D utilizes a wide range of program artifacts that exist within your development environment. As a result, you're able to see extensive information about many different aspects of your software.

For information about the structure and content of your software, Imagix 4D uses either your source code itself or the source browser (.sb) database created by your SPARCompiler. For C++, this ensures that Imagix 4D understands your code the same way your compiler does, overcoming any compiler idiosyncrasies.

Your makefiles are used as the source for build dependency information. File data, such as ownership, permissions, and modification dates, is pulled from directly from your file system. For performance and test coverage profiling, Imagix 4D extracts information from tcov and gprof data files. You're able to generate profiling information easily, by compiling your code with the appropriate switches and then running your executables.

Data Integration Speeds Analysis

This combination of data sources ensures that Imagix 4D has information about all of the key aspects of your software. Through its entity / relationship / attribute database technology, Imagix 4D is able to present this information in a cohesive, meaningful manner. You're able to see all of the information relevant to investigating a particular aspect of your software.

An example of this is the Coverage mode, used for analyzing how thoroughly your tests are exercising your code. In Coverage mode, you're able to view the calling hierarchy of your program. Within this hierarchy, you can see how thoroughly each function has been executed, and which of the potential calls in the program have actually been made. And when you open the source code in an editor, you see how often each block has been executed.

To create this view, Imagix 4D collects procedural hierarchy information from the SPARCompiler source browser database, the coverage information from tcov data files, and calls-made info from gprof. All of this information is seamlessly integrated and presented to you. You're able to spend your time analyzing what further testing you need to do, rather than figuring out what your current tests have exercised.